/**
 * Vue3 PDF.js Viewer 组件库入口文件
 * @author Ning,Li
 * @version 1.0.0
 */

import PdfWithThumbnails from './components/PdfWithThumbnails.vue';
import PdfViewer from './components/PdfViewer.vue';
import PdfViewerExample from './components/PdfViewerExample.vue';

// PDF.js Worker配置工具函数
import { GlobalWorkerOptions } from 'pdfjs-dist';

/**
 * 配置PDF.js Worker的工具函数
 * @param {string} workerSrc - Worker源文件路径或CDN地址
 * @author Ning,Li
 */
export const configurePdfWorker = (workerSrc) => {
  if (workerSrc) {
    GlobalWorkerOptions.workerSrc = workerSrc;
  } else {
    // 使用默认CDN配置
    GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@3.11.174/build/pdf.worker.min.js';
  }
};

// 自动配置PDF.js Worker（使用CDN）
configurePdfWorker();

// 单独导出组件
export { PdfWithThumbnails, PdfViewer, PdfViewerExample };

// 默认导出（主要组件）
export default PdfWithThumbnails;

// Vue插件安装函数
export const install = (app, options = {}) => {
  // 如果传入了worker配置，则使用自定义配置
  if (options.workerSrc) {
    configurePdfWorker(options.workerSrc);
  }
  
  // 注册全局组件
  app.component('PdfWithThumbnails', PdfWithThumbnails);
  app.component('PdfViewer', PdfViewer);
  app.component('PdfViewerExample', PdfViewerExample);
  
  return app;
};

// 支持通过script标签直接使用
if (typeof window !== 'undefined' && window.Vue) {
  window.Vue.use({ install });
}

// 组件库信息
export const version = '1.0.2';

/**
 * 预设主题配置
 * @author Ning,Li
 */
export const themes = {
  // 深色主题
  dark: {
    toolbarBackgroundColor: '#1a1a1a',
    toolbarTextColor: '#ffffff',
    contentBackgroundColor: '#0f0f0f',
    thumbnailBackgroundColor: '#1a1a1a',
    primaryColor: '#4fc3f7',
    buttonHoverColor: '#333333'
  },
  
  // 浅色主题
  light: {
    toolbarBackgroundColor: '#f5f5f5',
    toolbarTextColor: '#333333',
    contentBackgroundColor: '#ffffff',
    thumbnailBackgroundColor: '#eeeeee',
    primaryColor: '#2196f3',
    buttonHoverColor: '#e0e0e0'
  },
  
  // 蓝色主题
  blue: {
    toolbarBackgroundColor: '#1976d2',
    toolbarTextColor: '#ffffff',
    contentBackgroundColor: '#e3f2fd',
    thumbnailBackgroundColor: '#bbdefb',
    primaryColor: '#ff5722',
    buttonHoverColor: '#1565c0'
  },
  
  // 默认主题
  default: {
    toolbarBackgroundColor: '#333333',
    toolbarTextColor: '#ffffff',
    contentBackgroundColor: '#222222',
    thumbnailBackgroundColor: '#232323',
    primaryColor: '#42b983',
    buttonHoverColor: '#444444'
  }
}; 